home *** CD-ROM | disk | FTP | other *** search
/ Aminet 8 / Aminet 8 (1995)(GTI - Schatztruhe)[!][Oct 1995].iso / Aminet / dev / lang / smalltlk.lha / Smalltalk3.09 / src / st.c < prev    next >
C/C++ Source or Header  |  1995-08-26  |  2KB  |  86 lines

  1. /*
  2.     Little Smalltalk, version 3
  3.     Main Driver
  4.     written By Tim Budd, September 1988
  5.     Oregon State University
  6. */
  7. # include <stdio.h>
  8. # include "env.h"
  9. # include "memory.h"
  10. # include "names.h"
  11.  
  12. int initial = 0;    /* not making initial image */
  13.  
  14. extern int objectCount();
  15. extern const char LVT_STinit[];
  16.  
  17. # ifdef NOARGC
  18. main()
  19. # endif
  20. # ifndef NOARGC
  21. main(argc, argv)
  22. int argc;
  23. char **argv;
  24. # endif
  25. {
  26. FILE *fp;
  27. object firstProcess;
  28. char *p, buffer[120];
  29.  
  30. initMemoryManager();
  31.  
  32. strcpy(buffer,"systemImage");
  33. p = buffer;
  34.  
  35. # ifdef MUIWIN
  36. /* initialize the MUI package */
  37. initmui();
  38. # endif
  39.  
  40. # ifndef NOARGC
  41. if (argc != 1) p = argv[1];
  42. # endif
  43.  
  44. # ifdef BINREADWRITE
  45. fp = fopen(p, "rb");
  46. # endif
  47. # ifndef BINREADWRITE
  48. fp = fopen(p, "r");
  49. # endif
  50.  
  51. if (fp == NULL) {
  52.     sysError("cannot open image", p);
  53.     exit(1);
  54.     }
  55. imageRead(fp);
  56. initCommonSymbols();
  57.  
  58. firstProcess = globalSymbol("systemProcess");
  59. if (firstProcess == nilobj) {
  60.     sysError("no initial process","in image");
  61.     exit(1); return 1;
  62.     }
  63.  
  64. /* execute the main system process loop repeatedly */
  65. /*debugging = true;*/
  66.  
  67. # ifndef MUIWIN
  68. /* not using windowing interface, safe to print out message */
  69. printf("Little Smalltalk, Version 3.04\n");
  70. printf("Written by Tim Budd, Oregon State University\n");
  71. # else
  72. /* are windowing, put up the "about" requester */
  73. openCons();
  74. genRequest(LVT_STinit);
  75. # endif
  76.  
  77. while (execute(firstProcess, 15000)) ;
  78.  
  79. # ifdef MUIWIN
  80. failmui(NULL);
  81. # endif
  82.  
  83. /* exit and return - belt and suspenders, but it keeps lint happy */
  84. exit(0); return 0;
  85. }
  86.